# coding=utf-8
def partition(n):
    """
    生成自然数n的所有拆分方案
    
    参数:
        n: 待拆分的自然数
    
    返回:
        包含所有拆分方案的列表
    """
    partitions = []
    
    def helper(target, current_partition, start):
        """
        递归辅助函数
        
        参数:
            target: 剩余需要拆分的数值
            current_partition: 当前拆分方案
            start: 下一个数的起始值（避免重复方案）
        """
        if target == 0:
            # 找到一个完整的拆分方案
            partitions.append(current_partition.copy())
            return
        
        for i in range(start, target + 1):
            if i < n:  # 确保拆分的数都小于n
                current_partition.append(i)
                helper(target - i, current_partition, i)
                current_partition.pop()
    
    helper(n, [], 1)
    return partitions
 
def print_partitions(partitions):
    """
    按照指定格式输出拆分方案
    
    参数:
        partitions: 拆分方案列表
    """
    for p in partitions:
        print('+'.join(map(str, p)))
 
# 获取用户输入
try:
    N = int(input())
    # 生成拆分方案
    partitions = partition(N)
    # 输出拆分方案
    print_partitions(partitions)
except ValueError:
    pass